package staticcodearea;
/*
    静态代码块 : 定义在类中方法外且被static修饰的代码块

    格式
    static{
    }

    执行流程
    在类第一次加载的时候执行且只执行一次
    作用: 为类的加载做准备
    举例 : 类加载的驱动
 */
public class Demo {
    public static void main(String[] args) {
        Cat cat = new Cat();
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();
        {
            //局部代码块 : 约束引用生命周期的,用来节约内存空间
            int num = 10;
            System.out.println("num = " + num);
        }
    }
}
class Cat{
    //静态代码块
    static {
        System.out.println("静态代码块执行了");
    }
    {
        //构造代码块
        System.out.println("构造代码块执行了");
    }
    public Cat(){
        System.out.println("无参构造执行了");
    }
}